package com.demo.jhfkd;

import cn.baison.om.xml.PayBillXml;
import cn.ljl.sand.jws.OutSideDataReceiveItf;
import cn.ljl.sand.jws.OutSideDataReceiveItfPortType;

import com.demo.common.model.Jhfkd;
import com.jfinal.aop.Before;
import com.jfinal.aop.Inject;
import com.jfinal.core.Controller;

/**
 * 本 demo 仅表达最为粗浅的 jfinal 用法，更为有价值的实用的企业级用法 详见 JFinal 俱乐部: http://jfinal.com/club
 * 
 * BsuserController 所有 sql 与业务逻辑写在 Model 或 Service 中，不要写在 Controller 中，养成好习惯，有利于大型项目的开发与维护
 */
@Before(JhfkdInterceptor.class)
public class JhfkdController extends Controller {

	@Inject
	JhfkdService service;

	public void index() {
		setAttr("jhfkdPage", service.paginate(getParaToInt(0, 1), 30, getRequest().getParameter("startdate"), getRequest().getParameter("enddate")));
		setAttr("startdate", getRequest().getParameter("startdate"));
		setAttr("enddate", getRequest().getParameter("enddate"));
		render("jhfkd.html");
	}

	public void add() {
	}

	/**
	 * save 与 update 的业务逻辑在实际应用中也应该放在 serivce 之中， 并要对数据进正确性进行验证，在此仅为了偷懒
	 */
	// @Before(BsuserValidator.class)
	public void save() {
		// getBean(Bsuser.class).save();
		// redirect("/jhfkd");
	}

	public void edit() {
		// setAttr("jhfkd", service.findById(getPara()));
		OutSideDataReceiveItf os = new OutSideDataReceiveItf();
		OutSideDataReceiveItfPortType datRecv = os.getOutSideDataReceiveItfSOAP11PortHttp();
		PayBillXml recBill = new PayBillXml();
		String xmlStr = null;
		try {
			xmlStr = recBill.build();
		} catch (Exception e) {
			e.printStackTrace();
		}
		String str = datRecv.receiveXmlData(xmlStr, recBill.getBillType());
		System.out.println(xmlStr);
		System.out.println("\r\n");
		System.out.println(str);
	}

	/**
	 * save 与 update 的业务逻辑在实际应用中也应该放在 serivce 之中， 并要对数据进正确性进行验证，在此仅为了偷懒
	 */
	@Before(JhfkdValidator.class)
	public void update() {
		getBean(Jhfkd.class).update();
		redirect("/jhfkd");
	}

	public void syncupdateall() {
		System.out.println("all.....");
		redirect("/jhfkd");
	}

	/**
	 * NC付款单同步应收接口
	 * @throws Exception 
	 */
	public void syncupdate() throws Exception {
		service.syncupdate(getPara());
		redirect("/jhfkd");
	}
}
